package org.tis.tools.senior.module.developer.dao;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
import org.tis.tools.senior.module.developer.entity.SWorkitem;
import org.tis.tools.senior.module.developer.entity.vo.DeliveryResultCountDetail;
import org.tis.tools.senior.module.developer.entity.vo.WorkitemBranchDetail;
import org.tis.tools.senior.module.developer.entity.vo.WorkitemProfilesNameDetail;

import java.util.Date;
import java.util.List;

/**
 * sWorkitem的Mapper类
 * 
 * @author Auto Generate Tools
 * @date 2018/06/20
 */
public interface SWorkitemMapper extends BaseMapper<SWorkitem>  {

    /**
     * 查询工作项及分支详情
     * @param rowBounds
     * @param wrapper
     * @return
     */
    List<WorkitemBranchDetail> selectWorkitemDetail(RowBounds rowBounds,
                                                    @Param("ew") Wrapper<WorkitemBranchDetail> wrapper);

    /**
     * 统计此工作项的提申请个数
     * @param guidWorkitem
     * @return
     */
    int selectWorkitemDeliverdCount(Integer guidWorkitem);

    /**
     * 统计此工作项代码变动个数
     * @param guidWorkitem
     * @return
     */
    int selectStandardCount(Integer guidWorkitem);

    /**
     * 查询工作项按工作项类型及状态分组统计
     */
    List<DeliveryResultCountDetail> selectWorkTypeStatusGroupCount();

    /**
     * 主页重点追踪需求
     */
    List<WorkitemProfilesNameDetail> selectWorkitemProfilesDetail(@Param("itemLables")List<String> itemLables,
                                                                  @Param("workType")String workType,
                                                                  @Param("beginTime")Date beginTime,
                                                                  @Param("endTime")Date endTime);
}

